﻿using System;
using System.Runtime.InteropServices;

#if (OBI_MATHEMATICS)
using Unity.Mathematics;
#endif


namespace Obi
{
    [Serializable]
    [StructLayout(LayoutKind.Sequential)]
    public struct VInt4
    {
        public int x;
        public int y;
        public int z;
        public int w;

        public VInt4(int x, int y, int z, int w)
        {
            this.x = x;
            this.y = y;
            this.z = z;
            this.w = w;
        }

        public VInt4(int x)
        {
            this.x = x;
            this.y = x;
            this.z = x;
            this.w = x;
        }

#if (OBI_MATHEMATICS)
        public static implicit operator VInt4(int4 i) => new VInt4(i.x, i.y, i.z, i.w);
        public static implicit operator int4(VInt4 i) => new int4(i.x, i.y, i.z, i.w);
#endif
    }
}
